속성
개요
엔터티에 속하는 것.
인스턴스에서 관리하고자 하는, 의미 상 더이상 분리되지 않는 최소의 데이터 단위이다.
그래서 이것은 엔터티에 대한 설명이자 인스턴스의 구성요소라고도 한다.
여기에서도 속성과 속성값을 분리해서 볼 수 있다.
이때 속성은 인스턴스에 속하고, 속성값이 속성에 속한다.
그래서 다음과 같이 정리할 수 있다.
- 한 엔터티는 2개 이상의 인스턴스의 집합
- 한 엔터티는 2개 이상의 속성을 가짐
- 한 속성은 하나의 속성값을 가짐
- 더 이상 분리되지 않는다고 했으니까.
여기에서 기본키 등의 개념이 나온다.
이후에 보자.
속성은 서술식으로 명명하지 않는다.
이것도 최대한 유일한 이름으로 명명한다.
특징
- 엔터티처럼 반드시 필요하고 관리하고자 하는 정보
- 정규화 이론에 따라 속한 엔터티의 주식별자에 함수적 종속성을 가져야 한다.
- 한 속성에는 하나의 값만. 여러 값이 있으면 별도로 엔터티를 분류하는 것이 바람직하다.
한 사람의 대인 관계라는 속성에 아빠, 친구, 사촌 등이 있다면, 그것은 아예 따로 엔터티로 분리해내는 게 나을 것이다.
분류
특성에 따른 분류
- 기본 속성
- 분석을 통해 나오는 기본적인 속성
- 설계 속성
- 모델 설계를 하면서 나오는 속성
- 가령 상가 엔터티에 대해 표준산업 분류코드 같은 건 현실세계에서 필요하진 않지만, 설계를 하며 생기게 된 것이다.
- 파생 속성
- 다른 속성에서 계산, 변형돼서 나오는 속성
- 주소 정보가 속성으로 있는데, 여기에서 위도 경도를 추출하는 것이 파생이라고 볼 수 있겠다.
엔터티 구성 방식에 따른 분류
여기는 키에 대한 이야기다.
키에서 조금 더 자세히 볼 것이다.
- 기본키 속성
- Primary Key
- 엔터티에서 하나의 인스턴스를 식별할 수 있는 속성
- 외래키 속성
- Foreign Key
- 타 엔터티와의 관계를 통해 포함된 속성
- 일반 속성
- 위의 것들이 아닌 그냥 속성..
지하철역승하차 엔터티가 있다고 쳐보자.
이것은 PK로 지하철역번호, 날짜, 시간 등을 가진다.
이렇게 복합으로 기본키를 가질 수도 있다.
한편 지하철역번호는 다른 엔터티의 기본키일 수도 있으니 이건 동시에 외래키일 수도 있다.
도메인
속성이 가지는 범위를 도메인이라고 부른다.
가령 생물학적 성별이란 속성에는 남, 여만이 있을 뿐이다.
이 경우에 성별 속성은 [남, 여] 도메인을 가지는 것이다.